Created by Petteri Nevavuori.
Kirjana Goodfellow et al.: Deep Learning (2016)
Otsikot seuraavat pääotsikoiden tasolla kirjaa, mutta alaotsikot eivät aina.
Tämä on luku, johon luvut 16-19 ovat rakentaneet. Niissä luvuissa esitellyin menetelmin voidaan tässä luvussa tarkemmin esiteltäviä tietyntyyppisiä generatiivisia malleja, joista jokainen mallintaa todennäköisyysjakaumia useiden muuttujien suhteen ja jotkin sallivat jakauman funktion tarkan määrittämisen. Ne, jotka eivät suoranaisesti salli jakauman määrittämistä, mallintavat jakaumaa välillisesti mm. näytteistyksen kautta. Osa on esitettävissä graafimaisesti, osa ei. Kaikki mallit ovat kuitenkin todennäköisyysmalleja.
Aivan ensimmäiseksi esitellään Boltzmannin kone, jonka toiminta perustuu yksittäisten neuronien jakamiseen sekä näkyviin että piilomuuttujiin ja näiden joukkojen täydelliseen yhdistämiseen. Kehitetty konnektionistinen malli keskittyi alussa todennäköisysjakauman oppimiseen ja mallintamiseen binäärisiä arvoja saavien piilomuuttujien kautta, joskin myöhemmät laajennokset ovat syrjäyttäneet tämän lähtökohdan lähes täysin. Alkuperäinen menetelmä esitellään kuitenkin ymmärryksen rakentamiseksi.
Boltzmannin koneet ovat energiafunktiota käyttäviä malleja. Malli kouluttuu kaksivaiheisesti. Kytkettyydensä vuoksi koko verkko osallistuu näiden jakaumien muokkaukseen. Suuntaamattomuutensa vuoksi mallit tuottavat lähtökohtaisesti normalisoimattomia todennäköisyysjakaumia, minkä vuoksi niiden kanssa on käytettävä ositusfunktiota.
Boltzmannin koneen yksiköt jaetaan sekä näkyviin $v$ (vihreä) että piilossa oleviin $h$ (punainen). Yksikköjen määrän ei tarvitse vastata datan muuttujien määrää. Mallin koulutus tapahtuu luvun 18 likimääräisillä suurimman uskottavuuden estimoinnin menetelmillä. Mallin painojen (mustat viivat) koulutusta määrittää kaksi todennäköisyysjakaumaa: $p_{model}(v)$ ja $\hat{p}_{data}(v)p_{model}(h\mid v)$.
Rajoitetut Boltzmannin koneet esiteltiin pikaisesti jo luvussa 16. Erona alkuperäiseen Boltzmannin koneeseen on saman kerroksen yksikköjen välisten yhteyksien puuttuminen. Kerrosten käytön vuoksi RBM:ää voidaan syventää, joskin syvät RBM-verkot käsitellään vasta myöhemmin. Muutoin RBM vastaa perinteistä Boltzmannin konetta mm. energiafunktion osalta.
Vihreät yksiköt ovat jälleen näkyviä yksikköjä $v$ ja punaiset piiloyksikköjä $h$. Yksiköt ovat satunnaisesti alustettuja binäärisiä yksikköjä, joskin muullakin tavoin alustettuja verkkoja löytyy (mm. jatkuvat arvot).
Vaikkakin RBM:n energiafunktion tarkka ratkaisu on mahdoton selvittää. Mallin kerrosten sisäisten yhteyksien puutteen ja välisten yhteyksien vuoksi mallin näkyvien yksikköjen jakauma voidaan ositella ehdollisiin todennäköisyyksiin $p(h\mid v)$ ja $p(v\mid h)$ ja on täten laskettavissa. Kummatkin näistä ehdollisista todennäköisyyksistä voidaan kirjoittaa normalisoitavaan muotoon.
RBM on koulutettavissa kaikilla luvun 18 menetelmillä, sillä malli mahdollistaa sekä tehokkaan jakaumien likimääräisen ratkaisun että Gibbsin näytteistyksen käytön. Etenkin ehdollisen todennäköisyyden $p(h \mid v)$ suoraviivaisen ratkaistavuuden vuoksi myös malli on suoraviivaisesti koulutettavissa.
Syvät uskomusverkot (deep belief networks, DBN) aloittivat 2000-luvun puolivälin taitteessa kone- ja syväoppimisen nykyisyyteen asti kestäneen tutkimusvaiheen. Tätä ennen syvät mallit koettiin liian vaikeasti optimoitaviksi. Nykyisellään nämä mallit on kuitenkin jääneet pääsääntöisesti unholaan, sillä optimoinnin mahdollistumisen kautta tehokkaammat algoritmit ovat saaneet pääosan tutkimuksessa. Niiden mainitseminen ja läpikäynti on siis historiallisesti merkittävää, joskaan ei nykyisellään enää käyttökelpoisuus.
Syvät uskomusverkot ovat monipiilokerroksisia generatiivisia malleja siten, että kerroskohtaiset yhteydet uupuvat ja kerrokset ovat keskenään täysin yhdistetyt - kuten RBM-verkoilla. Erona RBM-verkkoihin on kuitenkin suunnatut yhteydet kaikissa muissa, paitsi kahdessa syvimmistä piilokerroksista. Kaikissa muissa kerroksissa yhteydet ovat dataa kohti suunnattuja.
Yhdellä piilokerroksella syvä uskomusverkko on käytännössä RBM. Näytteistys mallista tapahtuu Gibbsin näytteistyksellä kahdessa syvimmässä eli suuntaamattomassa piilokerroksessa, minkä jälkeen hyödynnetään suunnattujen kerrosten yhteyksiä näkyvien yksikköjen esivanhempiin pohjaavaassa näytteistyksessä (ancestral sampling).
DBN:n koulutus etenee kerros kerrallaan siten, että kulloinkin koulutetaan ikäänkuin oma RBM-verkkonsa. Ensin koulutetaan siis RBM-verkko näkyvien ja ensimmäisten piiloyksikköjen kanssa. Tämän jälkeen koulutetaan seuraava piilokerros käyttäen edeltävän piilokerroksen jakaumaa. Näin jatketaan koko verkon läpi siten, että syvemmät kerrokset koulutetaan mallintamaan edeltävän kerroksen jakaumaa. Kyseessä on siis kerroskohtainen ahne koulutus, joskin torkkualgoritmilla on mahdollista kouluttaa koko verkko.
Verkkojen kiinnostavuus nousi niiden käyttökelpoisuudesta luokittelussa, sillä koulutetun DBN-verkon painot voidaan vaihtaa osaksi myötäkytkettyä verkkoa. Painojen vaihdon jälkeen myötäkytketty verkko koulutetaan esimerkiksi luokittelutehtävään. Tämänkaltaisen toiminnan havaittiin parantavan luokittelutarkkuutta. Tämän kautta päästään hyödyntämään myötäkytkettyjen verkkojen ominaisuuksia, jotka mahdollistavat mm. lähes minkä tahansa mallintavan funktion oppimisen (universal approximator). Syvän uskomusverkon nimeä käytetään virheellisesti välillä kaikista syvistä verkoista, mutta se viittaa vain suuntaamattomia yhteyksiä sisältävään ohjaamattomaan malliin.
Syvä Boltzmannin kone (deep Boltzmann machine, DBM) on syvän uskomusverkon tapainen malli. Erona on, että kaikki yhteydet ovat suuntaamattomia. Yhden piilokerroksen kanssa se vastaa myös RMB-verkkoa, jolloin kerrosten sisäiset yhteydet myös puuttuvat.
RBM-verkkoon verrattuna DBM-verkon energiafunktio käsittää koko verkon suuntaamattomat yhteydet. Syvä monikerroksinen verkko voidaan myös ositella kaksiosaiseksi verkoksi siten, että joka toinen verkko on toisessa osassa ja joka toinen toisessa.
Tällöin syväkin malli on koulutettavissa yksinkertaisemman RBM:n tapaan, sillä mallin kerrosten jakaumat voidaan osittaa ehdollisiksi todennäköisyysjakaumiksi suhteessa toiseen kerrokseen. Tämän kautta myös Gibbsin näytteistys on tehokasta syvästä mallista huolimatta, joskin yksittäisten muuttujien sijasta päivitetään kerroskohtaiset muuttujat kaikki kerrallaan. Tämä mahdollistaa stokastisen suurimman uskottavuuden estimoinnin käytön.
Syviin uskomusverkkoihin verrattuna DBM-verkokojen jakauma on yksinkertaisempi, jonka on havaittu tarjoavan mahdollisuuksia rikkaampaan alkuperäisen jakauman likimääräistämiseen. Kun todennäköisyyden alarajaa optimoidaan kerros kerrallaan ankkuroiden toinen kerroksista ehdollisen todennäköisyyden laskennan kiintopisteeksi, on optimaalisen keskiarvokentän etsintä mahdollista kiinteään pisteeseen nojaavilla yhtälöillä. Tämä edelleen mahdollistaa jopa biologisestikin oikeantapaisen mallintamisen.
Näytteistyksen toteutus on DBM-verkoissa kuitenkin syviä uskomusverkkoja hankalampaa. DBN-verkkojen kanssa Monte Carlo -menetelmiä tarvitaan vain kahdessa syvimmässä kerroksessa (suuntaamaaton graafi), kun taas DBM-verkkojen kohdalla jokaisen kerroksen kanssa on tehtävä oma näytteistysoperaationsa.
DBM-verkon kerrosten ehdolliset jakaumat on ositeltavissa ehdollisiin todennäköisyysjakaumiin viereisten kerrosten mukaan, joskaan koko verkon yhteistodennäköisyyttä ei voida mielekkäästi ositella. Syynä on kerroskohtaisen riippumattomuuden rikkoutuminen. DBM-verkon lopullinen jakauma on tästäkin huolimatta likiarvoistettavissa luvun 19 keaskiarvokentän likiarvoistumenetelmillä.
DBM-verkot koostuvat monista RBM-verkoista, joiden koulutuksen haasteet ovat täten myös syvempien DBM-verkkojen haasteita. Toisin sanoen normalisointiin tarvittavan ositusfunktion sekä näytteistyksen likiarvoistuksen haasteet on selätettävä aiemmissa luvuissa esitellyillä menetelmillä.
DBM-verkon koulutus satunnaisesti alustetuin parametrein johtaa usein epäonnistumiseen joskus epäonnistuen kokonaan jakauman mallintamisessa ja toisinaan taas suoriutuen vain yhtä hyvin kuin RBM. Siksi yleinen tapa on esikouluttaa DBM-verkko ahneesti kerroskohtaisesti. Näkyvä kerros koulutetaan datalla, minkä jälkeen peräkkäiset kerrokset koulutetaan edeltävien kerrosten jakaumilla. Viimeisenkin kerroksen esikoulutuksen jälkeen malli kootaan yhdeksi syväksi DBM-malliksi.
Perinteisen DBM-verkon käyttö esim. luokittelussa vaatii vielä erillisen myötäkytketyn verkon liittämisen osaksi DBM-verkkoa. DBM-verkon kerroskohtaisen osakoulutustarpeen vuoksi luokitteluverkon parametrien oikeellisuuden todentaminen vaatii pitkällisen koulutuksen koko verkolle.
Ensimmäinen ratkaisu tähän koulutusongelmaan tunnetaan nimellä keskitetty (centered) DBM, mikä parametrisoi mallin uudelleen paremmin optimoitavan kohdefunktion toivossa. Mallia ei tarvitse esikouluttaa kerroskohtaisesti ja se saavuttaa hyviä maksimaalisen uskottavuuden tuloksia. Luokittelussa se ei kuitenkaan pärjää sopivasti regularisoidun myötäkytketyn verkon rinnalla. Menetelmä lisää malliin parametrin $\mu$, joka vähennetään mallin parametreista. Tavoitteena on saada vähennettyä mallista sen parametrien keskiarvo, eli tehdä niistä nollakeskiarvoisia. Näin saadaan paremmin koulutettava verkko.
Toinen ratkaisu on moniennustava (multi-prediction, MP-DBM) DBM, mikä välttää MCMC-algoritmien käyttöä koulutuksessa käyttäen vaihtoehtoista backpropilla optimoitavaa kohdefunktiota. Tässä ratkaisussa maksimaalisen uskottavuuden ja näytteistyksen suorituskyky jää huonommaksi, mutta luokittelutehokkuus on todella hyvä. Menetelmä perustuu keskiarvokenttäyhtälöiden käsittelyyn rekursiivisina inferenssialgoritmeina, joissa jokainen algoritmi pyritään maksimaalisen uskottavuuden sijasta antamaan mahdollisimman tarkka arvio piiloyksiköiden arvoille.
Backpropin käytöllä on kaksi etua inferenssigraafin kouluttamiselle. Malli ensinnäkin koulutetaan tällöin likimääräisesti, jolloin muutoinkin likimääräisesti koulutetun verkon tarkkuus paranee luokittelussa. Perinteistä DBM-verkkoa ei sellaisenaan voida käyttää luokitteluun, mutta MP-DBM-verkkoa voidaan. Menetelmä on lähellä dropout-menetelmää, sillä binääristen arvojen kanssa joku yksikkö putoaa välillä pois laskennasta ja toinen taas pysyy mukana. Se myös jakaa parametreja useamman graafin välillä. Erona on, että pois laskennasta olevaa yksikköä yritetään tällöin ennustaa sen täydellisen huomioimattomuuden sijasta.
Alkuperäisten binääristen muuttujien arvojen sijasta mm. kuvat ja audio hyötyvät reaaliarvoisista parametrien jakaumista enemmän. Joskin esimerkiksi harmaasävyjä voidaan esittää binääristen arvojen todennäköisyyksinä, on näin saadut arvojakaumat usein kohinaisia eivätkä teoreettisesti kovin käyttökelpoisia.
RBMt voidaan kehittää käyttämään eksponentiaalisia ehdollisia jakaumia. Eräs malleista on sellainen, jossa näkyvät yksiköt ovat normaali- eli reaalijakautuneita ja piiloyksiköt binäärijakautuneita ja se tunnetaan Gaussin RBM:nä. Näkyvien yksikköjen jakauman keskiarvo lasketaan piiloyksikköjen kautta. Tärkein muistettava asia on, että tässä mallissa reaaliarvoisuus saadaan piilomuttujille ehdollisen näkyvien yksikköjen normaalijakauman avulla. Ehdollinen normaalijakauma on
$$ p(v \mid h) = \mathcal{N}(v;Wh,\beta^{-1}),$$jossa $Wh$ on piiloyksikköjen mallin painoilla painotettu keskiarvo ja $\beta^{-1}$ jakauman hajonta (nämä tosin oletan, niitä ei eksplisiittisesti avata).
Kirjassa käydään läpi näkyvien yksikköjen jakauman parametrisointi piilokerroksen painojen avulla. Parametrisointimenetelmiä on useita ja kirjassa käydään läpi parametrisointi tarkkuusmatriisin (precision matrix) avulla. Tärkeintä on muodostaa ehdollisesta jakaumasta kelvollinen energiafunktio, josta on karsittu kaikki piilokerroksen sisäiset yhteydet. Muutoin kyseessä on lineearinen malli RBM:n sijasta.
Gaussin RBM-verkkojen jakaumat eivät kuitenkaan sovi kaikkeen dataan, kuten luonnollisiin kuviin, sillä yksittäisten pikselien merkityksellisyyden sijasta keskinäiset riippuvuudet ovat usein pikseleiden välisiä, mitä tässä yhteydessä nimitetään pikselien väliseksi kovarianssiksi. Gaussin RBM ei kykene tavoittamaan näitä, vaan toimii yksittäisten arvojen mukaan. Tähän ongelmaan, eli reaaliarvoisten kovarianssien mallintamiseen, on kehitetty joitakin vaihtoehtoisia malleja.
Ensimmäinen esitellyistä on keskiarvo- ja kovarianssi-RBM (mean and covariance RBM, mcRBM). Siinä mallin piiloyksiköt on jaettu sekä keskiarvo- että kovarianssiyksiköihin. Näin mallin sisälle muodostuu käytännössä kaksi RBM-verkkoa. Keskiarvoverkko toimii kuin Gaussin RBM. Toinen osa, joka tunnetaan myös cRBM-nimisenä, mallintaa datan sisäistä kovarianssia. Kokonaisuudessaan malli on näiden kahden osaverkon energiafunktioiden summaa mallintava.
Toinen esitelty menetelmä on Studentin t-jakaumien keskitulo, joka laajentaa t-jakaumien tulon mallia samaan tapaan, kuin cRBM laajentaa mcRBM-mallia. Suurin merkittävä ero on reaaliarvoisesssa ehdollisessa jakaumassa, sillä normaalijakauman sijasta se on Gamma-jakautunut. Muutoin malli on mcRBM:n tapainen monimuuttujamalli.
Viimeinen esitelty malli on piikki- ja laatta-RBM (spike and slab RBM, ssRBM), jossa piilomuuttujat jaetaan binäärisiin piikki- ja reaaliarvoisiin laattamuuttujiin. Piikkimuuttujat määrittävät ehdollisen todennäköisyyden kautta kunkin näkyvän muuttujan esiintymisen ylipäätään ja vastaava laattamuuttuja taas esiintyvän näkyvän muuttujan intensiteetin. Tällä tavoin voidaan mallintaa muuttujien kovarianssia sekä saadaan aikaan myös harvoja kuvauksia. Menetelmän ongelmana on parametrien säädön teoreettisen tuntemuksen puute, minkä vuoksi mallia on säädettävä heuristisesti käyttökelpoisten jakaumien tuottamiseksi. Laadullisesti menetelmä tuottaa erinomaisia näytteitä esimerkiksi kuvien kanssa.
Kuvien käsittely laskennallisesti on raskasta, minkä vuoksi kernel-pohjainen konvoluutio on muodostunut tyypilliseksi lähestymistavaksi niiden käsittelyssä koneoppimismenetelmin. Konvoluutioverkkojen lisäksi myös RBM-verkot hyötyvät tästä. Koonnin käyttö RBM-verkoissa ei kuitenkaan ole niin suoraviivaista, kuin konvoluutioverkoilla. Eräs ratkaisu on todennäköisyyspohjainen maksimikoonti (probabilistic max pooling), jolloin vain yhden kernelin sallitaan olla aktiivinen kerrallaan. Laskennan tehostuessa menetelmä pakottaa kernelit toisensa poissulkeviksi asettaen näin tilanteesta riippuen joko hyödyllisen tai haitallisen rajoitteen.
Joka tapauksessa syvien konvoluutio-Boltzmannin koneiden suorituskyky jää usein perinteisistä konvoluutioverkoista esimerkiksi luokittelun kohdalla, sillä niiden käytännön implementointi on haasteellista. Samoin perinteisempien konvoluutioverkkojen sijasta konvoluutio-DBM:ien koulutusta ei voida tehdä vaihtelevan kokoisilla syötedatoilla. Samoin reunojen kanssa tulee ongelmia, joita ei voida yksiselitteisesti ratkaista.
Kun tavoitteena on tuottaa rakenteellista ulostuloa, on ulostuloilla usein keskinäistä riippuvaisuutta sekä rajoituksia. Tällöinkin tavoitellaan jakauman $p(x \mid y)$ mallinnusta, johon Boltzmannin koneet soveltuvat hyvin. Esimerkki moniulostuloisesta datasta on äänen mallinnus, jossa yhdellä ajan hetkellä on saatava tietoa usealle eri taajuusalueelle. Tästä myös on johdettavissa, että Boltzmannin koneita voidaan käyttää moniulostuloisen ennustamisen lisäksi myös sekvenssien mallintamiseen. Tällöin mallinnetaan jakaumaa $p(x^{(t)} \mid x^{(t-1)}, ... , x^{(t-m)})$ siten, että itse syötteistä $x$ opittua jakaumaa ei muokata, vaan sekvenssin mukaan aktivoidaan muuttujia. Boltzmannin koneita on käytetty yhdessä toistavien verkkojen kanssa myös musiikin mallinnukseen (RNN-RBM).
Boltzmannin koneita voidaan laajentaa edelleen koulutuskriiterien valinnoilla. Pelkän syötteiden tilan $p(v)$ mallintamisen lisäksi Boltzmannin koneita voidaan kouluttaa ohjatusti mallintamaan jakaumaa $p(y \mid v)$. Näin koulutettujen RBM-mallien suorituskyky yltää kuitenkin heikosti perinteisten myötäkytkettyjen verkkojen tasolle. Normaalien toisen asteen vuorovaikutussuhteiden (second-order interactions) mallintamisen lisäksi RBM:t voidaan rakentaa hyödyntämään myös korkeamman asteen vuorovaikutussuhteita, jolloin tilallisten ja ajallisten piirteiden mallinnus mahdollistuu. Tämä on toteuttavissa mm. syventämällä mallia.
Ylipäätään Boltzmannin koneita voidaan käyttää hyvin laajakirjoisesti, joskin huomiota on tällöin kiinnitettävä erityisesti energiafunktion muodostamiseen.
Perinteiset neuroverkot käyttävät deterministisiä muunnoksia syötteille $x$, mutta generatiivisten mallien kanssa stokastiset eli jatkuvat muunnokset ovat kiinnostavampia. Tämä voidaan saavuttaa syöttämällä syötteiden rinnalla myös dataa jostain valitusta jakaumasta, jolloin mallin ulostulo vaikuttaa stokastiselta. Esimerkiksi normaalijakaumaa käyttäessä voidaan ei-funktiomainen jakauma muuttaa backpropilla koulutettavaksi parametroiduksi funktioksi käyttämällä jotain satunnaislukua $z$ ja laskemalla jakauma käyttäen sitä.
Näin jakauma saadaan osaksi mallia ja pienten muutosten mallintuminen mahdollistuu - näin saavutetaan stokastisuus. Tämä on yleistettävissä myös muihin satunnaisjakaumiin ja tunnetaan mm. stokastisena backpropina. Usein $z$ valitaan jostain yksinkertaisesta jakaumasta, kuten normaalijakaumasta, sillä syötedata tarjoaa usein muutoin esiintyvän kompleksisuuden mallintamiseen.
Diskreetin ulostulon tapauksessa stokastisen backpropin käyttö ei ole suotuisaa, sillä mallin oppima funktio ei ole jatkuva vaan askeleinen. Tällöin mallin derivaatat ovat käyttökelvottomia kohdefunktion avulla tehtävän mallin päivittämisen suhteen. REINFORCE-algoritmi, jonka nimi juontaa kaavan
$$\text{palkinnon kasvu} = \text{ei-negatiivinen kerroin} \times \text{siirroksen vahvistus} \times \text{ominaiskelpoisuus}$$englanninkielisten sanojen lyhenteestä, on tähän ongelmaan kehitetty algoritmien kehys. Pohja-ajatuksena on, että vaikka askeleisen funktion derivaatat ovat käyttökelvottomia, sen kohdefunktion odotusarvot muodostavat sileän ja gradienttien osalta laskettavan pinnan. Korkea-dimensioisen kohdearvon tapauksessa voidaan käyttää Monte Carlo -keskiarvoistusta.
Yksinkertaisilla REINFORCE-algoritmeilla on ongelmana sen korkea lähtökohtainen hajonta ja täten lisääntynyt näytteiden tarve. Varianssin vähennysmenetelmiä voidaan kuitenkin tässä kohdin hyödyntää, jolloin odotusarvo eli keskiarvo lukitaan ja varianssia pyritään pienentämään. Yleisesti REINFORCE-pohjaiset algoritmit voidaan ymmärtää gradientin arviointimenetelminä, jotka pyrkivät korreloimaan kohdearvot $y$ niillä tuotettuihin kustannusfunktion $J(y)$ arvoihin.
Tässä aliluvussa esitellään täysin suunnattuja generatiivisia graafimalleja tähän asti esiteltyjen osittain (DBN) tai matalien suunnattujen (harva koodaus) graafimallien täydenteeksi.
Sigmoidaaliset uskomusverkot ovat yksinkertaisia rajatun ehdollisen todennäköisyysjakauman omaavia suunnattuja diskreettejä graafimalleja. Mallien voidaan ajatella sisältävän joko-tai-tilavektoreita kerroksissa, joihin edellisten kerrosten tilat vaikuttavat. Mallien kanssa käytetäänkin esivanhempiin pohjaavaa näytteistystä usean kerroksen läpi. Malli muistuttaa DBN-mallia, mutta erona siihen ensimmäisen kerroksen yksiköt ovat toisistaan riippumattomia RBM-mallista näytteistämisen sijasta.
Malli kykenee riittävän syvänä mallintamaan minkä tahansa jakauman (universal approximator). Näytteistys mallista on tehokasta ja suoraviivaista. Mallin inferenssin eli muuttujien todennäköisyysjakauman laskenta suhtessa toisiin muuttujiin on mahdotonta tarkasti tai jopa edes keskikenttäinferenssin avulla. Siksi nämä mallit eivät ole yleistyneet. Eräs lähestymistapa tähän ongelmaan on ollut laskea jakauman alaraja mallille erikoistetulla tavalla, joskin se on toiminut vain matalilla verkoilla.
Monet generatiiviset mallit perustuvat ajatukseen differentoitavasta eli gradienttien osalta laskettavissa olevasta generaattoriverkosta, jossa tuotetaan näytteitä piilomuuttujilla tyypillisesti neuroverkolla. Näihin luetaan muuttuvat autoenkooderit, generatiiviset vastapuoliverko (adversarial networks) ja generatiiviset verkot eritystyksissä kouluttavat menetelmät.
Esimerkkilähestymistapa on syöttää verkkoon satunnaisarvoja vaikkapa normaalijakaumasta, josta malli sitten tuottaa näytteitä verkon piilomuuttujien avulla. Jakauman ja sen satunnaisuuden valinnassa on liikkumavaraa. Generaattorimalleja voidaan käyttää näytteiden tuottamisen lisäksi myös sekä ehdollisten jakaumien että toisten jakaumien parametrien tuottamiseen. Ehdollisen jakaumien tuottamisessa malli kykenee tuottamaan sekä jatkuvia että diskreettejä näytteitä, kun taas suoraan näytteitä tuotettaessa saadaan vain jatkuvia näytteitä.
Neuroverkkojen käyttö generatiivisessa mallinnuksessa on luokittelua tai regressiota mutkikkaampaa. Yksinkertaisehkon $x \to y$ kuvauksen oppimisen sijasta generatiivisen mallin opittava sekä syötejakauman $z$ mielekäs kokoonpano että $z \to x$ kuvaus. Mikäli syötejakauma on riittävästi tiedossa, on generatiivinen mallinnus melko suoraviivaista. Mikäli taas ei, on syötejakauman määrittäminen yksi isoimmista haasteita.
Seuraavat kappaleet esittävätkin vaihtoehtoisia menetelmiä generatiivisten ja differentoituvien verkkojen kouluttamiseen, kun vain syötedata $x$ tiedetään.
Vaihteleva autoenkooderi on suunnattu likiarvoista inferenssiä hyödyntävä gradienttipohjaisin menetelmin koulutettava malli. Näytteistys tapahtuu mallissa siten, että ensin se ottaa näytteen $z$-jakaumasta, joka syötetään generaattoriverkkoon $g(z)$. Tämän jälkeen tuotetaan näyte $x$ jakaumasta $p(x;g(z))=p(x \mid z)$. Koulutuksen aikana käytetään likiarvoista inferenssiverkkoa $z$:n tuottamiseen enkooderina, jolloin mallin toinen osa $p(x \mid z)$ toimii dekooderina.
Koulutus tapahuu maksimoimalla mallin vaihteleva todennäköisyysjakauman alaraja. Koulutus tapahtuu inferenssialgoritmien tapaan optimoimalla mallin parametrien lähtökohtaisesti mielivaltaista jakaumaa $q$ siten, että mallin logaritminen jakauman alaraja on mahdollisimman lähellä mallin jakaumaa syötteillä. Koulutus on neuroverkoille ominaisesti iteratiivista ja asteittaista sekä gradienttipohjaista. Alaraja on likiarvoistettavissa Monte Carlo -näytteistyksellä.
Vaihteleva autoenkooderi on elegantti lähestymistapa generatiiviseen mallinnukseen sekä teoreettisesti että implementoitavuuden puolesta - sen suorituskyky on kärkikastia nykyiselläänkin generatiivisessa mallinnuksessa. Suurin ongelma on kuvanäytteiden epätarkkuudessa, joka juontaa ilmeisesti logaritmisen uskottavuuden maksimointiin. Samoin mallit käyttävät vain pientä osaa $z$:n muuttujista.
Mallia on suoraviivaista laajentaa myös muihin arkkitehtuureihin. Yksi esimerkki tästä on syvä toistava huomion kirjoittaja (deep recurrent attention writer, DRAW), joka käyttää toistavaa enkooderia ja toistavaa dekooderia yhdessä huomiomekanismin kanssa. Malli on myös laajennettu mm. alarajan maksimoinnin sijasta toimimaan merkityksellisyyden mukaan painotettuna autoenkooderina.
Vaihtelevilla autoenkoodereilla voidaan mallintaa moniennustavia DBM-verkkoja laajempi kirjo todennäköisyysjakaumia keskiarvokenttäyhtälövaatimuksen puuttumisen vuoksi. Malli on myös vertailukohtiaan tulkittavampi tarjotessaan samanaikaisesti myös jakauman alarajan nostamisen edun. Haittana vaihtelevalla autoenkooderilla on, että se sovittuu vain yhteen ongelmaan, mikä taas ei ole ongelma menetelmää edeltäneillä algoritmeilla. Hyvänä ominaisuutena pidetään myös sitä, että vaihteleva autoenkooderi pakottaa mallin oppimaan ennustettavan koordinaattijärjestelmän, josta näytteiden tuottaminen on selkeää.
Generatiiviset vastakohtaverkot (GAN) perustuvat peliteoreettiseen tilanteeseen, jossa generaattoriverkko asetetaan kilpailemaan tunnistusverkkoa vastaan. Generaattoriverkko tuottaa näytteitä, kun taas tunnistusverkko pyrkii tunnistamaan generaattoriverkon tuotteet keinotekoisiksi oikeiden näytteiden rinnalla. Tavoitteena on nollasummapelimäinen tasapaino, jossa tuotettuja näytteitä ei kyetä erottelemaan oikeista näytteistä. Likiarvoista inferenssiä tai ositusfunktion laskentaa ei tarvita, sillä koulutus etenee taatusti asymptoottisesti.
GANien ongelmana ovat epäkuperat (non-convex) kohdefunktiopinnat, sillä sellaisissa tapauksissa GANit alisovittuvat. GANin tapauksessa kahden verkon koulutus tarkoittaa kummankin minimin eli sellaisen pisteen tai alueen löytämistä, jossa molemmat minimoituvat. Tällaista pistettä ei todennäköisesti ole olemassa, vaan ennemmin saavutetaan stabiili rata, jota pitkin kierretään ollen vaihtelevasti riittävän lähellä osaverkkojen minimejä. Yleisesti ottaen, samanaikainen kahden mallin koulutus ei siis saavuta taatusti tasapainoa. Tämän vaikutus sovittuvuuteen ei kuitenkaan ole tutkitusti varmaa. Käytännön sovelluksissa paras suorituskyky onkin saavutettu siten, että generaattoriverkko pyrkii maksimoimaan tunnistusverkon tekemiä virheitä.
GANien koulutuksen vakautus on edelleen ongelma, joskin suorituskykyä saavutetaan huolellisella verkon alustussäätämisellä. Syvillä konvoluutio-GANeilla (DCGAN) tehty mallinnus on onnistuneesti tavoittanut merkittävimpiä piirteitä koulutusdatasta. Samoin Laplacen pyramideja hyödyntävällä LAPGAN-mallilla on kyetty tuottamaan näytteitä, jotka onnistuvat hämäämään jopa ihmistä. Toiminnan kannalta dropout vaikuttaa tärkeältä elementiltä tunnistusverkossa.
Generatiiviset momentit yhteensovittavat (moment matching) verkot ovat yksi lisätapaus differentoituvien generaattoriverkkojen käytöstä. Eroten edeltäviin, näiden verkkojen ei tarvitse parittaa generaattoria osaksi muuta verkkoa. Momenttien yhteensovituksella tarkoitetaan sitä, että mallin tuottamien näytteiden tilastolliset tunnusluvut vastaavat läheisesti näytteiden tunnuslukuja. Momentti itsessään mielletään tässä kohdin siis satunnaismuuttujan potensseiksi - keskiarvoksi, neliöiden keskiarvoksi jne.
Mikäli jokaisen syötekohtaisen muuttujan eri momentteja lähdettäisiin minimoimaan, tulisi laskennallisen kapasiteetin seinä nopeasti vastaan - etenkin momenttien määrän kasvaessa. Samoin ongelmaksi muodostuisi myös vähäisempien momenttien kanssa vain lineaaristen jakaumien mallintamiskyky, vaikka neuroverkoilla tavoitellaan etenkin hankalampien epälineaaristen jakaumien mallintamista. Ongelmaa kierretään käyttämällä aiemmista poikkeavaa kohdefunktiota, maksimaalista keskimääräistä eroavuutta (maximum mean discrepancy, MMD), jossa mitataan etenkin ensimmäisten momenttien eroavuutta äärettömässä avaruudessa. Kohdefunktio saa minimiarvonsa vain, kun kaksi vertailtavaa jakaumaa ovat täysin identtiset.
Menetelmän tuottamat näytteet kärsivät kuitenkin huonosta laadusta, joskin laatua voidaan parantaa liittämällä malli osaksi vaikkapa autoenkooderia siten, että ensin koulutettuun autoenkooderiin liitetään enkooderin tilalle generatiivinen momentin yhteensovittava malli. Näin generatiivinen malli tuottaa autoenkooderin koodikerrokselle dataa, jota dekooderi muuntaa sitten näytteiksi. GANeista poiketen kohdefunktio määritellään aina syötejoukkokohtaisesti (batch), sillä momentit on laskettava näytteiden keskiarvoina. Liian pienellä osajoukkokoolla MMD-funktio aliarvioi todellisen hajonnan ja suuremmat joukkokoot parantavat tarkkuutta. Liian suuret joukkokoot hidastavat koko menetelmän toimintaa.
Kuvia generoitaessa konvoluutioarkkitehtuurin käyttö on usein suositeltavaa. Tällöin käytetään käänteistä konvoluutiota ja tulokset ovat realistisia sekä vähemmillä parametreilla eli kevyemmin tuotettuja. Perinteisessä konvoluutiossa syötekuvista karsitaan kerros kerrokselta piirteitä aina merkityksellisimpien piirteiden ulommalle kerrokselle asti. Generatiivisissa konvoluutioverkoissa on toimittava vastakkaisesti, eli rikastaen syötejakaumasta saatua dataa aina sisältörikkaaksi kuvaksi asti.
Samoin konvoluutiokerroksille perinteinen koontifunktio tavataan kääntää siten, että pienemmästä kuvasta suurempaa tuottaessa tuotetaan nollilla täytettyjä osa-alueita, joita myöhemmät kerrokset kykenevät hyödyntämään silmää miellyttävien tulosten aikaansaamiseksi.
Autoregressiiviset verkot ovat suunnattuja satunnaisia piilomuuttujia sisältämättömiä malleja. Jakaumia mallinnetaan yksikköjen sijasta yksinkertaisilla neuroverkoilla. Näitä malleja on nimitetty täysin-näkyviksi Bayesin verkoiksi (fully-visible Bayes networks, FVBN). Eräs kirjassa myöhemmin esitellyistä autoregressiivisistä malleista on NADE, jonka kanssa hyödynnetään parametrien ja täten opittujen piirteiden jakamista.
Yksinkertaisimmillaan autoregressiivinen verkko ei omaa yhtään piilokerroksia eikä täten piirteiden jakamistakaan tapahdu. Mallinnus tapahtuu muodostamalla kullekin syötteen muuttujalle lineaariyhtälö muiden muuttujien lineaarikombinaationa. Mallilla on siis $n$ muuttujan kanssa $n^2$ koulutettavaa parametria. Yleistasolla lineaariset autoregressiomallit voidaan nähdä lineaariluokittimien yleistyksenä generatiiviseen mallinnukseen, jolloin sekä hyödyt että haitat ovat samat kuin lineaariluokittimilla. Näiden mallien kapasiteetti on itsessään hyvin rajattu.
Autoregressiiviset neuroverkot omaavat samat peruspiirteet lineearisten vastinpariensa kanssa, mutta eroavat ehdollisten jakaumien parametrisoinnissa. Kuten neuroverkoissa yleensä, kapasiteettia voidaan kasvattaa rajatta sallien mallin näin oppia teoriassa minkä tahansa mahdollisen jakauman mallintamisen. Näin saadaan tarvittavien parametrien määrää vähennettyä siirryttäessä taulumaisesta mallinnuksesta kerrosmaiseen mallinnukseen. Samoin perättäisten muuttujien piirteiden laskenta voidaan tehdä käyttämällä edeltävien muuttujien piirteitä, mikä tunnetaan uudelleenkäytön periaatteena (reuse principle).
Autoregressiivinen todennäköisyysjakauman arviointiverkko (neural auto-regressive density estimator, NADE) on viimeaikainen erityisen menestynyt autoregressiomalli. Arkkitehtuuriltaan menetelmä on hyvin samankaltainen autoregressiivisen neuroverkon kanssa, mutta syöte- ja piilokerrosten parametrit ovat syötekohtaisesti samat. Tämänkaltainen kytkentä valittiin alunperin matkimaan RBM-verkkojen keskiarvokentän inferenssiä puuttuvien syötteiden täydentämiseen. Menetelmä vastaa läheisesti toistavaa verkkoa, mutta erona on ulostulokerroksen yhteyskohtaiset parametrisoinnit.
NADE toimii sekä diskreettien että jatkuvien arvojen kanssa, joskin jatkuvien arvojen kanssa toimiva menetelmä tunnetaan nimellä RNADE. Jatkuvien arvojen tapauksessa jyrkimmän kaltevuuden menetelmällä optimointi ei ole suoraan mahdollista, mutta keinoja tämänkin taklaamiseksi on kehitetty (mm. pseudogradientit). Muuttujien järjestystä voidaan myös vaihdella sekä käyttää eri järjestysten variaatioita suuremman NADE-malleista koostetun ensemble-verkon rakentamiseen. Tällaisen verkon suorituskyky on parempi, kuin yksittäisen verkon. Mallin syventäminen kadottaa saavutetut laskennalliset edut.
Autoenkooderit esiteltiin mallintamisen näkökulmasta jo luvussa 14, mutta vasta nyt käydään läpi niistä näytteistäminen. Suunnattut autoenkooderit, kuten vaihteleva, sallivat suoraviivaisen näytteistyksen esivanhempiin pohjaten. Suuntaamattomien mallin kanssa on hyödynnettävä MCMC-näytteistystekniikoita. Kun supistuviin autoenkoodereihin lisätään kohinaa, saadaan toistuvilla enkoodaus-dekoodaus-ajoilla matkittua Markovin ketjun tapaista satunnaiskulkua mallin parametripintaa pitkin.
Kohinan tyypin ja Markovin ketjun valinnalla on merkitystä satunnaiskulun tuottamiselle mallin parametripinnan oppimiseksi. Markovin ketju voidaan rakentaa ns. yleiselle kohinaa poistavalle autoenkooderille (generalized denoising autoencoder), joka pyrkii kohinaa poistavalle autoenkooderille ominaisesti tavoittamaan todellisen ja puhtaan todennäköisyysjakauman $p(x)$ kohinaa lisäävällä funktiolla $C$ korruptoitujen näytteiden $\tilde{x}$ lomasta.
Mikäli autoenkooderi mallinta ehdollisen jakauman $p(x \mid \tilde{x})$ johdonmukaisesti, voidaan Markovin ketjulla tavoittaa todellinen jakauma $p(x)$.
Boltzmannin koneiden tapaan myös kohinaa poistavien autoenkooderien kohdalla voidaan osa näytteiden muuttujista lukita ja käyttää vain vapaita muuttujia näytteistykseen. Näin saadaan simuloitua puuttuvien muuttujien avulla näytteistystä.
Takaisinkävely on generatiivisten kohinaa poistavien autoenkooderien koulutusta nopeuttava menetelmä, jossa koulutus tehdään yksittäisten enkoodaus-dekoodaus-toimintoparien sijasta Markovin ketjun tapaan stokastisesti. Mallia voidaan sitten muokata joko viimeisimmän tai kaikkien näytteiden mukaan. Näin saadaan valheellisten moodien (spurious modes) määrää vähennettyä.
Generatiiviset stokastiset verkot (GSN) lisäävät kohinaa poistaviiin autoenkoodereihin vielä yhden piiloyksikköjen kerroksen osana Markovin ketjua. Pelkän datantuottojakauman parametrisoinnin lisäksi GSN-mallit parametrisoivat itse näytteiden generointiprosessin. Näin näytteiden jakauma mallinnetaan implisiittisesti matemaattisen jakauman sijasta, mikäli sellainen on ylipäätään olemassa.
Alunperin GSN-mallit tarkoitettiin ohjaamattomaan koulutukseen, mutta malleja voidaan muokata myös toimimaan ohjatuissa koulutusongelmissa. Eräs tapa toteuttaa tämä on kouluttaa mallin dekooderikerrosta rekonstruktiokerroksen todennäköisyyksillä. Mallin ja etenkin sen Markovin ketjun sijoittelun näkökulmasta kyseessä on kuitenki ennemmin GSN-mallien erikoistapaus rakenteellisen ulostulon tuottamisessa. Toinen kokeiltu tapa on käyttää sekä ohjattuja että ohjaamattomia koulutuskriteerejä yhdessä. Näin saavutettiin tarkempi luokittelutarkkuus.
Jo esiteltyjen suuntaamattomien graafien MCMC- ja suunnattujen graafien esivanhempien kautta tapahtuvan näytteistysmenetelmien lisäksi on muitakin näytteistysmenetelmiä.
Käänteisdiffuusio (diffusion inversion) on eräs tällainen, ja se perustuu epätasapainotilaiseen termodynaamiikkaan. Perustana on ajatus siitä, että näytteistyksessä käytetyillä jakaumilla on rakenne, mikä voidaan myös hajoittaa osiin diffuusiolla - generatiivisessa mallissa tämä prosessi on käännetty siten, rakenteeton jakauma rakenteellistuu iteratiivisesti. Koska lopputulos käsitetään opituksi jakaumaksi, ei jakauman mallintamisessa hyödynnetä likiarvoistusmenetelmiä.
Toinen tälläinen on likimääräinen Bayesilainen laskenta (approximate Bayesian computation), jossa näytteitä joko hylätään tai muokataan vastaamaan tavoitellun jakauman tilastollisia momentteja. Menetelmä erottuu momenttien yhteensovituksesta siinä, että itse näytteisiin kosketaan mallin sijasta.
Generatiivisten mallien vertailu on usein tarpeellista tutkimuksessa, mutta tehtävänä se on haastava ja hienovaraisuutta vaativa. Usein vertailuun voidaan käyttää vain keskiarvoja todennäköisyyksistä. Esimerkiksi mallien oppimien piirteiden keskinäinen vertailu on erittäin hankalaa. Jos malleja käytetään vaikkapa luokitteluun ja käytännöllinen suorituskyky on kiinnostuksen kohteena, on vertailu selkeämpää. Joka tapauksessa mallien vertailu on itsessään jo haastava tutkimusongelma.
Haastetta lisää se, että myös syötedatojen tarvitsee olla mallien välillä täysin identtisiä. Muutokset vaikuttavat datan jakaumaan, jolloin mallinnettavat jakaumat eivät saa erota mallien välillä vertailua tavoiteltaessa. Siksi kuvien esikäsittelyyn liittyvät haasteet ovat generatiivisten mallien vertailussa yleisiä - mallit käsittelevät dataa hyvin eri tavoin.
Yleistä siksi onkin, että generatiivisten mallien hyvyyttä toisiin verratessa päädytään manuaaliseen visuaaliseen tuotettujen näytteiden vertailuun. Tämäkään ei kuitenkaan ole ongelmatonta, sillä huonokin malli voi oppia vain kopioimaan syötteitä näytteiksi. Tätä tosin on helppo tarkastella laskemalla syötteiden ja näytteiden etäisyyksiä - pienet ja olemattomat etäisyydet kertovat kopioinnin mahdollisuudesta.
Generatiiviset mallit kykenevät myös sekä yli- että alisovittumaan samanaikaisesti. Kissojen ja koirien kuvien kanssa koulutettu malli voi oppia tuottamaan pelkkiä koiria, jolloin se on ylisovittunut koirien kuviin mutta raa'asti alisovittunut kissakuviin nähden. Ihminen ei tätä voisi tietää, mikäli hänellä ei olisi tietoa koulutusdatasetistä - jokainen kuva voisi hyvinkin olla korkealaatuinen kuva koirasta. Siksi pelkkä visuaalinen kuvanlaatu ei ole yksinään kelvollinen viite mallin hyvyydestä. Tärkeintä onkin valita vertailumenetelmä huolellisesti aina tapauskohtaisesti.
Generatiivisten mallien koulutus piiloyksiköillä on tehokas tapa tavoittaa merkittäviä piirteitä datasetistä. Näin saadaan mahdollisuus avata vastauksia moniin dataan liittyviin päättelyongelmiin ja syötedatan muuttujien suhteisiin.